#include "Bool32.h"

Bool32::Bool32(bool valor) {
    this->_valor = valor;
    this->_punteroADato = &_valor;
}

Bool32::Bool32(void* punteroADato){
    this->_punteroADato = punteroADato;
}

Bool32::Bool32(string valor){
    //string uno = "1";
    if(string("1").compare(valor) == 0){
        this->_valor = true;
    } else {
        this->_valor = false;
    }
}

void Bool32::comparar(TipoDeDato& tipoDeDato,ostream& out) {
    unsigned int* otroValor = (unsigned int*) tipoDeDato.damePunteroADato();
    if ( _valor != *otroValor )
        out << "Se esperaba " << (int)_valor << " y se obtuvo " << (int)*otroValor << endl;
}

unsigned int Bool32::dameValor(){
    return this->_valor;
}

ClaseDeDato Bool32::getClass() {
    return C_BOOL_32;
}
